<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <button id="btn">123</button>
  <script>
    var obj = {
      name: 'zs'
    }
    function fn1(a, b) {
      console.log(this);
      console.log(a + b); //
    }

    // bind方法也改变this指向，但是返回一个函数（原函数改变this指向后的新函数）
    fn1.bind(obj, 2, 3)()

    // 主要用于改变函数this指向但是不立即执行的场景
    // 一般和定时器使用，定时器中的this指向window
    var btn = document.querySelector('#btn')
    btn.onclick = function () {
      this.disabled = true
      setTimeout(function () {
        this.disabled = false
      }.bind(this), 3000)
    }
  </script>
</body>

</html>